public class Test6 {
    //1.递归公式: 求 N! , 直接不好求, 可以把问题转换成 N! = N * (N-1)!
    public static int fac(int n){
        if(n==1){
            return 1;//归
        }
        return n*fac(n-1);//递
    }

    public static void main1(String[] args) {
        System.out.println(fac(5));
    }//① 递归「递进」阶段（调用自身，直到触发终止条件）
    //fac(5) → 需计算 5 * fac(4)，进入下一层
    //fac(4) → 需计算 4 * fac(3)，进入下一层
    //fac(3) → 需计算 3 * fac(2)，进入下一层
    //fac(2) → 需计算 2 * fac(1)，进入下一层
    //fac(1) → 触发终止条件 n == 1，返回 1
    // ② 递归「回归」阶段（带着结果，逐层返回计算）
    //fac(1) 返回 1 → fac(2) = 2 * 1 = 2，返回 2
    // fac(2) 返回 2 → fac(3) = 3 * 2 = 6，返回 6
    // fac(3) 返回 6 → fac(4) = 4 * 6 = 24，返回 24
    //fac(4) 返回 24 → fac(5) = 5 * 24 = 120，返回 120


    //2.按顺序打印1234
//    public static void print(int n){
//        if(n<10){
//            System.out.println(n);
//            return;
//        }
//        print(n/10);
//        System.out.println(n%10);
//    }
    //3.从 10 累加到 0 的结果。
 public static int sum(int n){
      if (n==0){
          return 0;
      }
      return n+sum(n-1);
 }

    public static void main(String[] args) {
        System.out.println(sum(10));
    }
}
